package com.ruoyi.web.utils.qg_pay.entity.request;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruoyi.common.utils.serializer.BigDecimalToPlainStringSerializer;
import com.ruoyi.web.enums.HttpMethodEnum;
import com.ruoyi.web.utils.qg_pay.anno.QGPayHttpConfig;
import com.ruoyi.web.utils.qg_pay.entity.QGPayCommonRequestParam;
import com.ruoyi.web.utils.qg_pay.entity.response.QGPayOrderPayRes;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 代收下单
 *
 * @since 2023/3/14 14:28
 */
@Data
@QGPayHttpConfig(url = "/orderPay",
        method = HttpMethodEnum.POST,
        needSignature = true,
        responseType = QGPayOrderPayRes.class)
public class QGPayOrderPay extends QGPayCommonRequestParam<Object, QGPayOrderPay> {

    /**
     * 商户号
     */
    private String merchant;

    /**
     * 商户订单号
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long orderNo;

    /**
     * 业务编码
     */
    private String businessCode;

    /**
     * 名字（可不填）
     */
    private String name;

    /**
     * 手机号（可不填）
     */
    private String phone;

    /**
     * 邮箱（可不填）
     */
    private String email;

    /**
     * 下单金额
     */
    @JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
    private BigDecimal amount;

    /**
     * 回调通知地址
     */
    private String notifyUrl;

    /**
     * 跳转地址
     */
    private String pageUrl;

    /**
     * 银行编码（印尼网银代收请填写BT，其它填BANK，代付根据商户对应银行填写）
     */
    private String bankCode;

    /**
     * 备注
     */
    private String subject;

    /**
     * 签名
     */
    private String sign;
}
